TCP测试

修改RTL8211F的驱动

在 V1.1.0 硬件设计中,Ethernet PHY 芯片由 RTL8211E 更换为 RTL8211F。

RTL8211F 的 TXDLY(TX Clock Delay) 需要通过 PHY 内部寄存器进行配置,而不能像 RTL8211E 一样通过硬件电阻进行配置。

在 xlnx-linux PHY 驱动中,对于 PHY_INTERFACE_MODE_GMII 接口模式,默认配置为不使能 TXDLY。

目前,PL 侧扩展网口采用的 PHY 接口模式正是 PHY_INTERFACE_MODE_GMII。因此,在当前驱动默认配置下,RTL8211F 的 TXDLY 未被使能,可能导致 PHY 与 MAC 之间的 TX 时序不满足要求,从而影响网口的正常通信。

驱动位于linux-xlnx/drivers/net/phy/realtek.c,修改rtl8211f_config_init函数:

修改后需要通过petalinux重新编译镜像。

TCP_SERVER

添加代码到vitis应用工程

右击src建立新的文件夹:

image-20250710140513635

建立相关的.c .h文件,如下图:

image-20250714152841219

编译调试

加入需要的头文件:

image-20250714144527291

核心代码

开发板作为tcp server(端口为12345),将收到的数据回环给发送方。

 

调试结果

通过网络调试助手NetAssist作为客户端,与所编写的服务端进行连接,进行数据的收发,可以看到调试结果如下:

image-20250717142919683

 

TCP_CLIENT

添加代码到vitis应用工程

右击src建立新的文件夹:

image-20250710140513635

建立相关的.c .h文件,如下图:

image-20250714152902278

编译调试

加入需要的头文件:

image-20250714153100559

核心代码

开发板作为tcp client,在连接server(可以在电脑上开启一个server)后,会回环从服务端发送过来的数据。

调试结果

先在电脑上将服务器打开,然后启动vitis中的程序。在配置好host ip和port后,将会和server连接。当server给开发板发的client送数据时,开发板会将收到的数据发送回server。可以看到调试结果如下:

image-20250714150853679